Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Stream cipher</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Stream_cipher"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Stream_cipher rootpage-Stream_cipher skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Stream cipher</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>

<p><span lang="my" dir="ltr">A</span> <b>stream cipher</b> is a <a href="Symmetric_key_algorithm" class="mw-redirect" title="Symmetric key algorithm">symmetric key</a> <a href="Cipher" title="Cipher">cipher</a> where plaintext digits are combined with a <a href="Pseudorandom" class="mw-redirect" title="Pseudorandom">pseudorandom</a> cipher digit stream (<a href="Keystream" title="Keystream">keystream</a>). In a stream cipher, each <a href="Plaintext" title="Plaintext">plaintext</a> <a href="Numerical_digit" title="Numerical digit">digit</a> is encrypted one at a time with the corresponding digit of the keystream, to give a digit of the <a href="Ciphertext" title="Ciphertext">ciphertext</a> stream. Since encryption of each digit is dependent on the current state of the cipher, it is also known as <i><b>state cipher</b></i>. In practice, a digit is typically a <a href="Bit" title="Bit">bit</a> and the combining operation is an <a href="Exclusive-or" class="mw-redirect" title="Exclusive-or">exclusive-or</a> (XOR).
</p><p>The pseudorandom keystream is typically generated serially from a random <a href="Seed_value" class="mw-redirect" title="Seed value">seed value</a> using digital <a href="Shift_register" title="Shift register">shift registers</a>. The <a href="Seed_value" class="mw-redirect" title="Seed value">seed value</a> serves as the <a href="Cryptographic_key" class="mw-redirect" title="Cryptographic key">cryptographic key</a> for decrypting the ciphertext stream. Stream ciphers represent a different approach to symmetric encryption from <a href="Block_cipher" title="Block cipher">block ciphers</a>. Block ciphers operate on large blocks of digits with a fixed, unvarying transformation. This distinction is not always clear-cut: in some <a href="Block_cipher_mode_of_operation" title="Block cipher mode of operation">modes of operation</a>, a block cipher primitive is used in such a way that it acts effectively as a stream cipher. Stream ciphers typically execute at a higher speed than block ciphers and have lower hardware complexity. However, stream ciphers can be susceptible to security breaches (see <a href="Stream_cipher_attack" class="mw-redirect" title="Stream cipher attack">stream cipher attacks</a>); for example, when the same starting state (seed) is used twice.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Loose_inspiration_from_the_one-time_pad">Loose inspiration from the one-time pad</h2></div>
<p>Stream ciphers can be viewed as approximating the action of a proven unbreakable cipher, the <a href="One-time_pad" title="One-time pad">one-time pad</a> (OTP). A one-time pad uses a <a href="Keystream" title="Keystream">keystream</a> of completely <a href="Random" class="mw-redirect" title="Random">random</a> digits. The keystream is combined with the plaintext digits one at a time to form the ciphertext. This system was proven to be secure by <a href="Claude_E._Shannon" class="mw-redirect" title="Claude E. Shannon">Claude E. Shannon</a> in 1949.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> However, the keystream must be generated completely at random with at least the same length as the plaintext and cannot be used more than once. This makes the system cumbersome to implement in many practical applications, and as a result the one-time pad has not been widely used, except for the most critical applications. Key generation, distribution and management are critical for those applications.
</p><p>A stream cipher makes use of a much smaller and more convenient key such as 128 bits. Based on this key, it generates a pseudorandom keystream which can be combined with the plaintext digits in a similar fashion to the one-time pad. However, this comes at a cost. The keystream is now pseudorandom and so is not truly random. The proof of security associated with the one-time pad no longer holds. It is quite possible for a stream cipher to be completely insecure.
</p>
<div class="mw-heading mw-heading2"><h2 id="Types">Types</h2></div>
<p>A stream cipher generates successive elements of the keystream based on an internal state. This state is updated in essentially two ways: if the state changes independently of the plaintext or <a href="Ciphertext" title="Ciphertext">ciphertext</a> messages, the cipher is classified as a <i>synchronous</i> stream cipher. By contrast, <i>self-synchronising</i> stream ciphers update their state based on previous plaintext or ciphertext digits. A system that incorporates the plaintext into the key is also known as an <a href="Autokey_cipher" title="Autokey cipher">autokey cipher</a> or autoclave cipher.
</p>
<div class="mw-heading mw-heading3"><h3 id="Synchronous_stream_ciphers">Synchronous stream ciphers</h3></div>

<p>In a <b>synchronous stream cipher</b> a stream of pseudorandom digits is generated independently of the plaintext and ciphertext messages, and then combined with the plaintext (to encrypt) or the ciphertext (to decrypt). In the most common form, binary digits are used (<a href="Bit" title="Bit">bits</a>), and the keystream is combined with the plaintext using the <a href="Exclusive_or" title="Exclusive or">exclusive or</a> operation (XOR). This is termed a <b>binary additive stream cipher</b>.
</p><p>In a synchronous stream cipher, the sender and receiver must be exactly in step for decryption to be successful. If digits are added or removed from the message during transmission, synchronisation is lost. To restore synchronisation, various offsets can be tried systematically to obtain the correct decryption. Another approach is to tag the ciphertext with markers at regular points in the output.
</p><p>If, however, a digit is corrupted in transmission, rather than added or lost, only a single digit in the plaintext is affected and the error does not propagate to other parts of the message. This property is useful when the transmission error rate is high; however, it makes it less likely the error would be detected without further mechanisms. Moreover, because of this property, synchronous stream ciphers are very susceptible to <a href="Attack_(computing)" class="mw-redirect" title="Attack (computing)">active attacks</a>: if an attacker can change a digit in the ciphertext, they might be able to make predictable changes to the corresponding plaintext bit; for example, flipping a bit in the ciphertext causes the same bit to be flipped in the plaintext.
</p>
<div class="mw-heading mw-heading3"><h3 id="Self-synchronizing_stream_ciphers">Self-synchronizing stream ciphers</h3></div>
<p>Another approach uses several of the previous <i>N</i> ciphertext digits to compute the keystream. Such schemes are known as <b>self-synchronizing stream ciphers</b>, <b>asynchronous stream ciphers</b> or <b>ciphertext autokey</b> (<b>CTAK</b>). The idea of self-synchronization was patented in 1946 and has the advantage that the receiver will automatically synchronise with the keystream generator after receiving <i>N</i> ciphertext digits, making it easier to recover if digits are dropped or added to the message stream. Single-digit errors are limited in their effect, affecting only up to <i>N</i> plaintext digits.
</p><p>An example of a self-synchronising stream cipher is a block cipher in <a href="Cipher_feedback" class="mw-redirect" title="Cipher feedback">cipher feedback</a> (CFB) <a href="Block_cipher_modes_of_operation" class="mw-redirect" title="Block cipher modes of operation">mode</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Based_on_linear-feedback_shift_registers">Based on linear-feedback shift registers</h2></div>
<p>Binary stream ciphers are often constructed using <a href="Linear-feedback_shift_register" title="Linear-feedback shift register">linear-feedback shift registers</a> (LFSRs) because they can be easily implemented in hardware and can be readily analysed mathematically. The use of LFSRs on their own, however, is insufficient to provide good security. Various schemes have been proposed to increase the security of LFSRs.
</p>
<div class="mw-heading mw-heading3"><h3 id="Non-linear_combining_functions">Non-linear combining functions</h3></div>

<p>Because LFSRs are inherently linear, one technique for removing the linearity is to feed the outputs of several parallel LFSRs into a non-linear <a href="Boolean_function" title="Boolean function">Boolean function</a> to form a <i>combination generator</i>. Various properties of such a <i>combining function</i> are critical for ensuring the security of the resultant scheme, for example, in order to avoid <a href="Correlation_attack" title="Correlation attack">correlation attacks</a>.
</p>

<div class="mw-heading mw-heading3"><h3 id="Clock-controlled_generators">Clock-controlled generators</h3></div>
<p>Normally LFSRs are stepped regularly. One approach to introducing non-linearity is to have the LFSR clocked irregularly, controlled by the output of a second LFSR. Such generators include the stop-and-go generator, the <a href="Alternating_step_generator" title="Alternating step generator">alternating step generator</a> and the <a href="Shrinking_generator" title="Shrinking generator">shrinking generator</a>.
</p><p>An <a href="Alternating_step_generator" title="Alternating step generator">alternating step generator</a> comprises three LFSRs, which we will call LFSR0, LFSR1 and LFSR2 for convenience. The output of one of the registers decides which of the other two is to be used; for instance, if LFSR2 outputs a 0, LFSR0 is clocked, and if it outputs a 1, LFSR1 is clocked instead. The output is the exclusive OR of the last bit produced by LFSR0 and LFSR1. The initial state of the three LFSRs is the key.
</p><p>The stop-and-go generator (Beth and Piper, 1984) consists of two LFSRs. One LFSR is clocked if the output of a second is a 1, otherwise it repeats its previous output. This output is then (in some versions) combined with the output of a third LFSR clocked at a regular rate.
</p><p>The <a href="Shrinking_generator" title="Shrinking generator">shrinking generator</a> takes a different approach. Two LFSRs are used, both clocked regularly. If the output of the first LFSR is 1, the output of the second LFSR becomes the output of the generator. If the first LFSR outputs 0, however, the output of the second is discarded, and no bit is output by the generator. This mechanism suffers from timing attacks on the second generator, since the speed of the output is variable in a manner that depends on the second generator's state. This can be alleviated by buffering the output.
</p>
<div class="mw-heading mw-heading3"><h3 id="Filter_generator">Filter generator</h3></div>
<p>Another approach to improving the security of an LFSR is to pass the entire state of a single LFSR into a non-linear <i>filtering function</i>.
</p>

<div class="mw-heading mw-heading2"><h2 id="Other_designs">Other designs</h2></div>

<p>Instead of a linear driving device, one may use a nonlinear update function. For example, Klimov and Shamir proposed triangular functions (<a href="T-function" title="T-function">T-functions</a>) with a single cycle on n-bit words.
</p>

<div class="mw-heading mw-heading2"><h2 id="Security">Security</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Stream_cipher_attacks" title="Stream cipher attacks">Stream cipher attacks</a></div>
<p>For a stream cipher to be secure, its keystream must have a large <a href="Periodic_function" title="Periodic function">period</a>, and it must be impossible to <i>recover the cipher's key</i> or internal state from the keystream. Cryptographers also demand that the keystream be free of even subtle biases that would let attackers <i>distinguish</i> a stream from random noise, and free of detectable relationships between keystreams that correspond to <i>related keys</i> or related <a href="Cryptographic_nonce" title="Cryptographic nonce">cryptographic nonces</a>. That should be true for all keys (there should be no <i><a href="Weak_key" title="Weak key">weak keys</a></i>), even if the attacker can <i>know</i> or <i>choose</i> some <i>plaintext</i> or <i>ciphertext</i>.
</p><p>As with other attacks in cryptography, stream cipher attacks can be <i>certificational</i> so they are not necessarily practical ways to break the cipher but indicate that the cipher might have other weaknesses.
</p><p>Securely using a secure synchronous stream cipher requires that one never reuse the same keystream twice. That generally means a different <a href="Cryptographic_nonce" title="Cryptographic nonce">nonce</a> or key must be supplied to each invocation of the cipher. Application designers must also recognize that most stream ciphers provide not <i>authenticity</i> but <i>privacy</i>: encrypted messages may still have been modified in transit.
</p><p>Short periods for stream ciphers have been a practical concern. For example, 64-bit block ciphers like <a href="Data_Encryption_Standard" title="Data Encryption Standard">DES</a> can be used to generate a keystream in <a href="Output_feedback" class="mw-redirect" title="Output feedback">output feedback</a> (OFB) mode. However, when not using full feedback, the resulting stream has a period of around 2<sup>32</sup> blocks on average; for many applications, the period is far too low. For example, if encryption is being performed at a rate of 8 <a href="Megabyte" title="Megabyte">megabytes</a> per second, a stream of period 2<sup>32</sup> blocks will repeat after about an hour.
</p><p>Some applications using the stream cipher <a href="RC4" title="RC4">RC4</a> are attackable because of weaknesses in RC4's key setup routine; new applications should either avoid RC4 or make sure all keys are unique and ideally <a href="Related_key" class="mw-redirect" title="Related key">unrelated</a> (such as generated by a well-seeded <a href="Cryptographically_secure_pseudorandom_number_generator" title="Cryptographically secure pseudorandom number generator">CSPRNG</a> or a <a href="Cryptographic_hash_function" title="Cryptographic hash function">cryptographic hash function</a>) and that the first bytes of the keystream are discarded.
</p><p>The elements of stream ciphers are often much simpler to understand than block ciphers and are thus less likely to hide any accidental or malicious weaknesses.
</p>
<div class="mw-heading mw-heading2"><h2 id="Usage">Usage</h2></div>
<p>Stream ciphers are often used for their speed and simplicity of implementation in hardware, and in applications where plaintext comes in quantities of unknowable length like a secure <a href="Wireless_network" title="Wireless network">wireless</a> connection. If a <a href="Block_cipher" title="Block cipher">block cipher</a> (not operating in a stream cipher mode) were to be used in this type of application, the designer would need to choose either transmission efficiency or implementation complexity, since block ciphers cannot directly work on blocks shorter than their block size. For example, if a 128-bit block cipher received separate 32-bit bursts of plaintext, three quarters of the data transmitted would be <a href="Padding_(cryptography)" title="Padding (cryptography)">padding</a>. Block ciphers must be used in <a href="Ciphertext_stealing" title="Ciphertext stealing">ciphertext stealing</a> or <a href="Residual_block_termination" title="Residual block termination">residual block termination</a> mode to avoid padding, while stream ciphers eliminate this issue by naturally operating on the smallest unit that can be transmitted (usually bytes).
</p><p>Another advantage of stream ciphers in military cryptography is that the cipher stream can be generated in a separate box that is subject to strict security measures and fed to other devices such as a radio set, which will perform the XOR operation as part of their function. The latter device can then be designed and used in less stringent environments.
</p><p><a href="ChaCha20" class="mw-redirect" title="ChaCha20">ChaCha</a> is becoming the most widely used stream cipher in software;<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> others include:
<a href="RC4" title="RC4">RC4</a>,
<a href="A5/1" title="A5/1">A5/1</a>,
<a href="A5/2" title="A5/2">A5/2</a>,
Chameleon,
<a href="FISH_(cipher)" title="FISH (cipher)">FISH</a>,
<a href="Helix_(cipher)" class="mw-redirect" title="Helix (cipher)">Helix</a>,
<a href="ISAAC_(cipher)" title="ISAAC (cipher)">ISAAC</a>,
<a href="MUGI" title="MUGI">MUGI</a>,
<a href="Panama_(cipher)" class="mw-redirect" title="Panama (cipher)">Panama</a>,
<a href="Phelix" title="Phelix">Phelix</a>,
<a href="Pike_(cipher)" title="Pike (cipher)">Pike</a>,
<a href="Salsa20" title="Salsa20">Salsa20</a>,
<a href="SEAL_(cipher)" title="SEAL (cipher)">SEAL</a>,
<a href="SOBER" title="SOBER">SOBER</a>,
<a href="SOBER-128" title="SOBER-128">SOBER-128</a>,
and
<a href="WAKE_(cipher)" title="WAKE (cipher)">WAKE</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Comparison">Comparison</h2></div>

<table style="font-size: 85%; text-align: center;" class="wikitable sortable plainrowheaders">
<tbody><tr>
<th rowspan="2">Stream<br>cipher
</th>
<th rowspan="2">Creation<br>date
</th>
<th rowspan="2" data-sort-type="numeric">Speed<br>(<a href="Cycles_per_byte" class="mw-redirect" title="Cycles per byte">cycles per byte</a>)
</th>
<th colspan="3">(bits)
</th>
<th colspan="2">Attack
</th></tr>
<tr>
<th>Effective<br><a href="Key_(cryptography)" title="Key (cryptography)">key-</a><a href="Key_size" title="Key size">length</a>
</th>
<th data-sort-type="numeric"><a href="Initialization_vector" title="Initialization vector">Initialization vector</a>
</th>
<th data-sort-type="numeric">Internal<br>state
</th>
<th class="unsortable">Best known
</th>
<th data-sort-type="numeric">Computational<br>complexity
</th></tr>
<tr>
<th scope="row"><a href="A5/1" title="A5/1">A5/1</a>
</th>
<td>1989
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>54 or 64 (in <a href="2G" title="2G">2G</a>)
</td>
<td>22 (in 2G)
</td>
<td>64
</td>
<td>Active <a href="Known-plaintext_attack" title="Known-plaintext attack">KPA</a> OR<br><a href="Known-plaintext_attack" title="Known-plaintext attack">KPA</a> time–memory tradeoff
</td>
<td>~&nbsp;2 seconds OR<br>2<sup>39.91</sup>
</td></tr>
<tr>
<th scope="row"><a href="A5/2" title="A5/2">A5/2</a>
</th>
<td>1989
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>54
</td>
<td>114
</td>
<td>64?
</td>
<td>Active
</td>
<td>4.6 milliseconds
</td></tr>
<tr>
<th scope="row"><a href="Achterbahn_(stream_cipher)" title="Achterbahn (stream cipher)"> Achterbahn-128/80</a>
</th>
<td>2006
</td>
<td>1 (hardware)
</td>
<td>80/128
</td>
<td>80/128
</td>
<td>297/351
</td>
<td>Brute force for frame lengths <i>L</i>&nbsp;≤&nbsp;2<sup>44</sup>. <a rel="nofollow" class="external text" href="http://www.matpack.de/achterbahn/Goettfert_Gammel_On_the_frame_length_of_Achterbahn-128-80_ITW2007.pdf">Correlation attack for <i>L</i>&nbsp;≥&nbsp;2<sup>48</sup></a>.
</td>
<td>2<sup>80</sup> resp. 2<sup>128</sup> for <i>L</i>&nbsp;≤&nbsp;2<sup>44</sup>.
</td></tr>
<tr>
<th scope="row"><a href="CryptMT" title="CryptMT">CryptMT</a>
</th>
<td>2005
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>Variable
</td>
<td data-sort-value="19968">up to 19968
</td>
<td>19968
</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">— (2008)
</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">— (2008)
</td></tr>
<tr>
<th scope="row"><a href="Crypto-1" title="Crypto-1">Crypto-1</a>
</th>
<td data-sort-value="1994">Pre-1994
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>48
</td>
<td data-sort-value="16">16
</td>
<td>48
</td>
<td>Active KPA (2008)
</td>
<td>40 ms OR<br>2<sup>48</sup> (2008)<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<th scope="row"><a href="E0_(cipher)" title="E0 (cipher)">E0 (cipher)</a>
</th>
<td data-sort-value="1999">Pre-1999
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>Variable<br>(usually 128)
</td>
<td data-sort-value="4">4
</td>
<td>132
</td>
<td>KPA (2005)
</td>
<td>2<sup>38</sup> (2005)<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<th scope="row"><a href="FISH_(cipher)" title="FISH (cipher)">FISH</a>
</th>
<td>1993
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>Variable
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td><a href="Known-plaintext_attack" title="Known-plaintext attack">Known-plaintext attack</a>
</td>
<td>2<sup>11</sup>
</td></tr>
<tr>
<th scope="row"><a href="Grain_(cipher)" title="Grain (cipher)">Grain</a>
</th>
<td data-sort-value="2004">Pre-2004
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>80
</td>
<td>64
</td>
<td>160
</td>
<td>Key derivation
</td>
<td>2<sup>43</sup>
</td></tr>
<tr>
<th scope="row"><a href="HC-256" title="HC-256">HC-256</a>
</th>
<td data-sort-value="2004">Pre-2004
</td>
<td>4 <a href="Pentium_4" title="Pentium 4">(W<sub>P4</sub>)</a>
</td>
<td>256
</td>
<td>256
</td>
<td>65536
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td></tr>
<tr>
<th scope="row"><a href="ISAAC_(cipher)" title="ISAAC (cipher)">ISAAC</a>
</th>
<td>1996
</td>
<td>2.375 <a href="64-bit" class="mw-redirect" title="64-bit">(W<sub>64-bit</sub>)</a> –<br>4.6875 <a href="32-bit" class="mw-redirect" title="32-bit">(W<sub>32-bit</sub>)</a>
</td>
<td>8–8288<br>(usually 40–256)
</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">—
</td>
<td>8288
</td>
<td>(2006) First-round<br>weak-internal-state-derivation
</td>
<td>4.67×10<sup>1240</sup> (2001)
</td></tr>
<tr>
<th scope="row"><a href="MICKEY" title="MICKEY">MICKEY</a>
</th>
<td data-sort-value="2004">Pre-2004
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>80
</td>
<td data-sort-value="40">Variable (0 to 80)
</td>
<td>200
</td>
<td>Differential Fault Attack (2013)
</td>
<td>2<sup>32.5</sup> (2013)<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<th scope="row"><a href="MUGI" title="MUGI">MUGI</a>
</th>
<td>1998–2002
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>128
</td>
<td>128
</td>
<td>1216
</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">— (2002)
</td>
<td>~&nbsp;2<sup>82</sup>
</td></tr>
<tr>
<th scope="row"><a href="PANAMA" class="mw-redirect" title="PANAMA">PANAMA</a>
</th>
<td>1998
</td>
<td>2
</td>
<td>256
</td>
<td>128?
</td>
<td>1216?
</td>
<td>Hash collisions (2001)
</td>
<td>2<sup>82</sup>
</td></tr>
<tr>
<th scope="row"><a href="Phelix" title="Phelix">Phelix</a>
</th>
<td data-sort-value="2004">Pre-2004
</td>
<td data-sort-value="8">up to 8 <a href="X86_architecture" class="mw-redirect" title="X86 architecture">(W<sub>x86</sub>)</a>
</td>
<td>256 + a 128-bit <a href="Cryptographic_nonce" title="Cryptographic nonce">nonce</a>
</td>
<td>128?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>Differential (2006)
</td>
<td>2<sup>37</sup>
</td></tr>
<tr>
<th scope="row"><a href="Pike_(cipher)" title="Pike (cipher)">Pike</a>
</th>
<td>1994
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>Variable
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">— (2004)
</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">— (2004)
</td></tr>
<tr>
<th scope="row"><a href="Py_(cipher)" title="Py (cipher)">Py</a>
</th>
<td data-sort-value="2004">Pre-2004
</td>
<td>2.6
</td>
<td>8–2048?<br>(usually 40–256?)
</td>
<td>64
</td>
<td>8320
</td>
<td><a href="Cryptanalysis" title="Cryptanalysis">Cryptanalytic</a> theory (2006)
</td>
<td>2<sup>75</sup>
</td></tr>
<tr>
<th scope="row"><a href="Rabbit_(cipher)" title="Rabbit (cipher)">Rabbit</a>
</th>
<td>2003-Feb
</td>
<td>3.7<a href="Pentium_III" title="Pentium III">(W<sub>P3</sub>)</a> – 9.7<a href="ARM7TDMI" class="mw-redirect" title="ARM7TDMI">(W<sub>ARM7</sub>)</a>
</td>
<td>128
</td>
<td>64
</td>
<td>512
</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">— (2006)
</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">— (2006)
</td></tr>
<tr>
<th scope="row"><a href="RC4" title="RC4">RC4</a>
</th>
<td>1987
</td>
<td>7 <a href="Intel_P5_(microarchitecture)" class="mw-redirect" title="Intel P5 (microarchitecture)">W<sub>P5</sub></a><sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</td>
<td>8–2048<br>(usually 40–256)
</td>
<td>RC4 does not take an IV. If one desires an IV, it must be mixed into the key somehow.
</td>
<td>2064
</td>
<td><a href="Adi_Shamir" title="Adi Shamir">Shamir</a> initial-bytes <a href="Weak_key#List_of_algorithms_with_weak_keys" title="Weak key">key-derivation</a> OR <a href="Known-plaintext_attack" title="Known-plaintext attack">KPA</a>
</td>
<td>2<sup>13</sup> OR 2<sup>33</sup>
</td></tr>
<tr>
<th scope="row"><a href="Salsa20" title="Salsa20">Salsa20</a>
</th>
<td data-sort-value="2004">Pre-2004
</td>
<td>4.24 <a href="PowerPC_G4" title="PowerPC G4">(W<sub>G4</sub>)</a> –<br>11.84 <a href="Pentium_4#Willamette" title="Pentium 4">(W<sub>P4</sub>)</a>
</td>
<td>256
</td>
<td data-sort-value="128">a 64-bit nonce + a 64-bit stream position
</td>
<td>512
</td>
<td>Probabilistic neutral bits method
</td>
<td>2<sup>251</sup> for 8 rounds (2007)
</td></tr>
<tr>
<th scope="row"><a href="Scream_(cipher)" title="Scream (cipher)">Scream</a>
</th>
<td>2002
</td>
<td>4–5 <a href="Software" title="Software">(W<sub>soft</sub>)</a>
</td>
<td>128 + a 128-bit nonce
</td>
<td>32?
</td>
<td>64-bit round function
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td></tr>
<tr>
<th scope="row"><a href="SEAL_(cipher)" title="SEAL (cipher)">SEAL</a>
</th>
<td>1997
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>32?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td></tr>
<tr>
<th scope="row"><a href="SNOW" title="SNOW">SNOW</a>
</th>
<td data-sort-value="2003">Pre-2003
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>128 or 256
</td>
<td>32
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td></tr>
<tr>
<th scope="row"><a href="SOBER-128" title="SOBER-128">SOBER-128</a>
</th>
<td>2003
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>up to 128
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>Message forge
</td>
<td>2<sup>−6</sup>
</td></tr>
<tr>
<th scope="row"><a href="SOSEMANUK" title="SOSEMANUK">SOSEMANUK</a>
</th>
<td data-sort-value="2004">Pre-2004
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>128
</td>
<td>128
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td></tr>
<tr>
<th scope="row"><a href="Trivium_(cipher)" title="Trivium (cipher)">Trivium</a>
</th>
<td data-sort-value="2004">Pre-2004
</td>
<td>4 <a href="X86_architecture" class="mw-redirect" title="X86 architecture">(W<sub>x86</sub>)</a> –<br>8 <a href="Logic_gate" title="Logic gate">(W<sub>LG</sub>)</a>
</td>
<td>80
</td>
<td>80
</td>
<td>288
</td>
<td><a href="Brute_force_attack" class="mw-redirect" title="Brute force attack">Brute force attack</a> (2006)
</td>
<td>2<sup>135</sup>
</td></tr>
<tr>
<th scope="row"><a href="Turing_(cipher)" title="Turing (cipher)">Turing</a>
</th>
<td>2000–2003
</td>
<td>5.5 <a href="X86_architecture" class="mw-redirect" title="X86 architecture">(W<sub>x86</sub>)</a>
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>160
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td></tr>
<tr>
<th scope="row"><a href="VEST" title="VEST">VEST</a>
</th>
<td>2005
</td>
<td>42 <a href="Application-specific_integrated_circuit" title="Application-specific integrated circuit">(W<sub>ASIC</sub>)</a> –<br>64 <a href="Field-programmable_gate_array" title="Field-programmable gate array">(W<sub>FPGA</sub>)</a>
</td>
<td data-sort-value="80">Variable<br>(usually 80–256)
</td>
<td data-sort-value="80">Variable<br>(usually 80–256)
</td>
<td>256–800
</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">— (2006)
</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">— (2006)
</td></tr>
<tr>
<th scope="row"><a href="WAKE_(cipher)" title="WAKE (cipher)">WAKE</a>
</th>
<td>1993
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Un­known">?
</td>
<td>8192
</td>
<td><a href="Chosen-plaintext_attack" title="Chosen-plaintext attack">CPA</a> &amp; <a href="Chosen-ciphertext_attack" title="Chosen-ciphertext attack">CCA</a>
</td>
<td>Vulnerable
</td></tr>
<tr>
<th rowspan="2">Stream<br>cipher
</th>
<th rowspan="2">Creation<br>date
</th>
<th rowspan="2">Speed<br>(<a href="Cycles_per_byte" class="mw-redirect" title="Cycles per byte">cycles per byte</a>)
</th>
<th colspan="3">(bits)
</th>
<th colspan="2">Attack
</th></tr>
<tr>
<th>Effective<br><a href="Key_(cryptography)" title="Key (cryptography)">key-</a><a href="Key_size" title="Key size">length</a>
</th>
<th><a href="Initialization_vector" title="Initialization vector">Initialization vector</a>
</th>
<th>Internal<br>state
</th>
<th>Best known
</th>
<th>Computational<br>complexity
</th></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Trivia">Trivia</h2></div>
<ul><li>United States <a href="National_Security_Agency" title="National Security Agency">National Security Agency</a> documents sometimes use the term <b>combiner-type algorithms</b>, referring to algorithms that use some function to combine a <a href="Pseudorandom_number_generator" title="Pseudorandom number generator">pseudorandom number generator</a> (PRNG) with a <a href="Plaintext" title="Plaintext">plaintext</a> stream.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="ESTREAM" title="ESTREAM">eSTREAM</a></li>
<li><a href="Linear-feedback_shift_register" title="Linear-feedback shift register">Linear-feedback shift register</a> (LFSR)</li>
<li><a href="Nonlinear-feedback_shift_register" title="Nonlinear-feedback shift register">Nonlinear-feedback shift register</a> (NLFSR)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFDeaneKraus2021" class="citation book cs1">Deane, Arthur; Kraus, Aaron (2021). "Chapter 3: Domain 3: Security Architecture and Engineering". <i>The Official (ISC)2 CISSP CBK Reference</i> (6th&nbsp;ed.). Hoboken, New Jersey: John Wiley &amp; Sons, Inc. p.&nbsp;232. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-119-78999-4</bdi>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.cloudflare.com/do-the-chacha-better-mobile-performance-with-cryptography/">"Do the ChaCha: Better mobile performance with cryptography"</a>. 23 February 2015.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFGarciade_Koning_GansMuijrersvan_Rossum2008" class="citation web cs1">Garcia, Flavio D.; de Koning Gans, Gerhard; Muijrers, Ruben; van Rossum, Peter; Verdult, Roel; Schreur, Ronny Wichers; Jacobs, Bart (4 October 2008). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210223113847/https://www.cs.ru.nl/~flaviog/publications/Dismantling.Mifare.pdf">"Dismantling MIFARE Classic"</a> <span class="cs1-format">(PDF)</span>. 13th European Symposium on Research in Computer Security (ESORICS 2008), LNCS, Springer. Archived from <a rel="nofollow" class="external text" href="https://www.cs.ru.nl/~flaviog/publications/Dismantling.Mifare.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 23 February 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">25 June</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFLuMeierVaudenay2005" class="citation book cs1">Lu, Yi; Meier, Willi; Vaudenay, Serge (2005). "The Conditional Correlation Attack: A Practical Attack on Bluetooth Encryption". <a rel="nofollow" class="external text" href="https://www.iacr.org/archive/crypto2005/36210097/36210097.pdf"><i>Advances in Cryptology – CRYPTO 2005</i></a> <span class="cs1-format">(PDF)</span>. Lecture Notes in Computer Science. Vol.&nbsp;3621. Santa Barbara, California, USA. pp.&nbsp;<span class="nowrap">97–</span>117. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&nbsp;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.323.9416">10.1.1.323.9416</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F11535218_7">10.1007/11535218_7</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-3-540-28114-6</bdi>.</cite><span class="cs1-maint citation-comment"><code class="cs1-code">{{cite book}}</code>: CS1 maint: location missing publisher (link)</span></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFBanikMaitraSarkar2013" class="citation journal cs1">Banik, Subhadeep; Maitra, Subhamoy; Sarkar, Santanu (2013). <a rel="nofollow" class="external text" href="http://eprint.iacr.org/2013/029">"A Differential Fault Attack on MICKEY 2.0"</a>. <i>Cryptology ePrint Archive</i>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFP._Prasithsangaree_and_P._Krishnamurthy2003" class="citation journal cs1">P. Prasithsangaree and P. Krishnamurthy (2003). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20131203082918/http://www.sis.pitt.edu/~is3966/group5_paper2.pdf">"Analysis of Energy Consumption of RC4 and AES Algorithms in Wireless LANs"</a> <span class="cs1-format">(PDF)</span>. <i>IEEE Globecom</i>. Archived from <a rel="nofollow" class="external text" href="http://www.sis.pitt.edu/~is3966/group5_paper2.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2013-12-03.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<ul><li>Matt J. B. Robshaw, Stream Ciphers Technical Report TR-701, version 2.0, RSA Laboratories, 1995 <a rel="nofollow" class="external text" href="http://www.networkdls.com/Articles/tr-701.pdf">(PDF)</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210903075015/http://www.networkdls.com/Articles/tr-701.pdf">Archived</a> 2021-09-03 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a>.</li>
<li><cite id="CITEREFBethPiper1985" class="citation book cs1">Beth, Thomas; Piper, Fred (1985). <a rel="nofollow" class="external text" href="https://link.springer.com/content/pdf/10.1007/3-540-39757-4_9.pdf">"The Stop-and-Go-Generator"</a> <span class="cs1-format">(PDF)</span>. <i>Advances in Cryptology</i>. Lecture Notes in Computer Science. Vol.&nbsp;209. pp.&nbsp;<span class="nowrap">88–</span>92. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F3-540-39757-4_9">10.1007/3-540-39757-4_9</a></span>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-3-540-16076-2</bdi>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190329161904/https://link.springer.com/content/pdf/10.1007/3-540-39757-4_9.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2019-03-29.</cite></li>
<li>Christof Paar, Jan Pelzl, <a rel="nofollow" class="external text" href="https://archive.today/20121208212741/http://wiki.crypto.rub.de/Buch/movies.php">"Stream Ciphers"</a>, Chapter 2 of "Understanding Cryptography, A Textbook for Students and Practitioners". (companion web site contains online cryptography course that covers stream ciphers and LFSR), Springer, 2009.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="ftp://ftp.rsasecurity.com/pub/pdfs/tr701.pdf">RSA technical report on stream cipher operation.</a></li>
<li><a rel="nofollow" class="external text" href="http://www.cosic.esat.kuleuven.be/publications/thesis-167.pdf">Cryptanalysis and Design of Stream Ciphers (thesis by Hongjun Wu).</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110706225443/http://biblion.epfl.ch/EPFL/theses/2008/4040/EPFL_TH4040.pdf">Analysis of Lightweight Stream Ciphers (thesis by S. Fischer).</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-label="Navbox0" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Stream_ciphers94" style="font-size:114%;margin:0 4em"></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Widely used ciphers</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="A5/1" title="A5/1">A5/1</a></li>
<li><a href="A5/2" title="A5/2">A5/2</a></li>
<li><a href="Salsa20#ChaCha_variant" title="Salsa20">ChaCha</a></li>
<li><a href="Crypto-1" title="Crypto-1">Crypto-1</a></li>
<li><a href="E0_(cipher)" title="E0 (cipher)">E0</a></li>
<li><a href="RC4" title="RC4">RC4</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="ESTREAM" title="ESTREAM">eSTREAM</a> Portfolio</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Software</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="HC-256" title="HC-256">HC-128</a></li>
<li><a href="Rabbit_(cipher)" title="Rabbit (cipher)">Rabbit</a></li>
<li><a href="Salsa20" title="Salsa20">Salsa20</a></li>
<li><a href="SOSEMANUK" title="SOSEMANUK">SOSEMANUK</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Hardware</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Grain_(cipher)" title="Grain (cipher)">Grain</a></li>
<li><a href="MICKEY" title="MICKEY">MICKEY</a></li>
<li><a href="Trivium_(cipher)" title="Trivium (cipher)">Trivium</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other ciphers</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Achterbahn_(stream_cipher)" title="Achterbahn (stream cipher)">Achterbahn</a></li>
<li><a href="F-FCSR" title="F-FCSR">F-FCSR</a></li>
<li><a href="FISH_(cipher)" title="FISH (cipher)">FISH</a></li>
<li><a href="ISAAC_(cipher)" title="ISAAC (cipher)">ISAAC</a></li>
<li><a href="KCipher-2" title="KCipher-2">KCipher-2</a></li>
<li><a href="MUGI" title="MUGI">MUGI</a></li>
<li><a href="ORYX" title="ORYX">ORYX</a></li>
<li><a href="Panama_(cryptography)" title="Panama (cryptography)">Panama</a></li>
<li><a href="Phelix" title="Phelix">Phelix</a></li>
<li><a href="Pike_(cipher)" title="Pike (cipher)">Pike</a></li>
<li><a href="Py_(cipher)" title="Py (cipher)">Py</a></li>
<li><a href="QUAD_(cipher)" title="QUAD (cipher)">QUAD</a></li>
<li><a href="RC4#RC4+" title="RC4">RC4+</a></li>
<li><a href="RC4#RC4A" title="RC4">RC4A</a></li>
<li><a href="Scream_(cipher)" title="Scream (cipher)">Scream</a></li>
<li><a href="SEAL_(cipher)" title="SEAL (cipher)">SEAL</a></li>
<li><a href="SNOW" title="SNOW">SNOW</a></li>
<li><a href="SOBER" title="SOBER">SOBER</a></li>
<li><a href="SOBER-128" title="SOBER-128">SOBER-128</a></li>
<li><a href="Spritz_(cipher)" class="mw-redirect" title="Spritz (cipher)">Spritz</a></li>
<li><a href="Turing_(cipher)" title="Turing (cipher)">Turing</a></li>
<li><a href="VEST" title="VEST">VEST</a></li>
<li><a href="Variably_Modified_Permutation_Composition" title="Variably Modified Permutation Composition">VMPC</a></li>
<li><a href="WAKE_(cipher)" title="WAKE (cipher)">WAKE</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Generators</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Shrinking_generator" title="Shrinking generator">shrinking generator</a></li>
<li><a href="Self-shrinking_generator" title="Self-shrinking generator">self-shrinking generator</a></li>
<li><a href="Alternating_step_generator" title="Alternating step generator">alternating step generator</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Theory</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Block_cipher_mode_of_operation" title="Block cipher mode of operation">block ciphers in stream mode</a></li>
<li><a href="Shift_register" title="Shift register">shift register</a></li>
<li><a href="Linear-feedback_shift_register" title="Linear-feedback shift register">LFSR</a></li>
<li><a href="Nonlinear-feedback_shift_register" title="Nonlinear-feedback shift register">NLFSR</a></li>
<li><a href="T-function" title="T-function">T-function</a></li>
<li><a href="Initialization_vector" title="Initialization vector">IV</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Attacks</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Correlation_attack" title="Correlation attack">correlation attack</a></li>
<li><a href="Correlation_immunity" title="Correlation immunity">correlation immunity</a></li>
<li><a href="Stream_cipher_attacks" title="Stream cipher attacks">stream cipher attacks</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Cryptography149" style="font-size:114%;margin:0 4em"><a href="Cryptography" title="Cryptography">Cryptography</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">General</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="History_of_cryptography" title="History of cryptography">History of cryptography</a></li>
<li><a href="Outline_of_cryptography" title="Outline of cryptography">Outline of cryptography</a></li>
<li><a href="Classical_cipher" title="Classical cipher">Classical cipher</a></li>
<li><a href="Cryptographic_protocol" title="Cryptographic protocol">Cryptographic protocol</a>
<ul><li><a href="Authentication_protocol" title="Authentication protocol">Authentication protocol</a></li></ul></li>
<li><a href="Cryptographic_primitive" title="Cryptographic primitive">Cryptographic primitive</a></li>
<li><a href="Cryptanalysis" title="Cryptanalysis">Cryptanalysis</a></li>
<li><a href="Cryptocurrency" title="Cryptocurrency">Cryptocurrency</a></li>
<li><a href="Cryptosystem" title="Cryptosystem">Cryptosystem</a></li>
<li><a href="Cryptographic_nonce" title="Cryptographic nonce">Cryptographic nonce</a></li>
<li><a href="Cryptovirology" title="Cryptovirology">Cryptovirology</a></li>
<li><a href="Hash_function" title="Hash function">Hash function</a>
<ul><li><a href="Cryptographic_hash_function" title="Cryptographic hash function">Cryptographic hash function</a></li>
<li><a href="Key_derivation_function" title="Key derivation function">Key derivation function</a></li>
<li><a href="Secure_Hash_Algorithms" title="Secure Hash Algorithms">Secure Hash Algorithms</a></li></ul></li>
<li><a href="Digital_signature" title="Digital signature">Digital signature</a></li>
<li><a href="Kleptography" title="Kleptography">Kleptography</a></li>
<li><a href="Key_(cryptography)" title="Key (cryptography)">Key (cryptography)</a></li>
<li><a href="Key_exchange" title="Key exchange">Key exchange</a></li>
<li><a href="Key_generator" title="Key generator">Key generator</a></li>
<li><a href="Key_schedule" title="Key schedule">Key schedule</a></li>
<li><a href="Key_stretching" title="Key stretching">Key stretching</a></li>
<li><a href="Keygen" title="Keygen">Keygen</a></li>
<li>Machines</li>
<li><a href="Cryptojacking_malware" class="mw-redirect" title="Cryptojacking malware">Cryptojacking malware</a></li>
<li><a href="Ransomware" title="Ransomware">Ransomware</a></li>
<li><a href="Random_number_generation" title="Random number generation">Random number generation</a>
<ul><li><a href="Cryptographically_secure_pseudorandom_number_generator" title="Cryptographically secure pseudorandom number generator">Cryptographically secure pseudorandom number generator</a> (CSPRNG)</li></ul></li>
<li><a href="Pseudorandom_noise" title="Pseudorandom noise">Pseudorandom noise</a> (PRN)</li>
<li><a href="Secure_channel" title="Secure channel">Secure channel</a></li>
<li><a href="Insecure_channel" class="mw-redirect" title="Insecure channel">Insecure channel</a></li>
<li><a href="Subliminal_channel" title="Subliminal channel">Subliminal channel</a></li>
<li><a href="Encryption" title="Encryption">Encryption</a></li>
<li><a href="Decryption" class="mw-redirect" title="Decryption">Decryption</a></li>
<li><a href="End-to-end_encryption" title="End-to-end encryption">End-to-end encryption</a></li>
<li><a href="Harvest_now%2C_decrypt_later" title="Harvest now, decrypt later">Harvest now, decrypt later</a></li>
<li><a href="Information-theoretic_security" title="Information-theoretic security">Information-theoretic security</a></li>
<li><a href="Plaintext" title="Plaintext">Plaintext</a></li>
<li><a href="Codetext" class="mw-redirect" title="Codetext">Codetext</a></li>
<li><a href="Ciphertext" title="Ciphertext">Ciphertext</a></li>
<li><a href="Shared_secret" title="Shared secret">Shared secret</a></li>
<li><a href="Trapdoor_function" title="Trapdoor function">Trapdoor function</a></li>
<li><a href="Trusted_timestamping" title="Trusted timestamping">Trusted timestamping</a></li>
<li><a href="Key-based_routing" title="Key-based routing">Key-based routing</a></li>
<li><a href="Onion_routing" title="Onion routing">Onion routing</a></li>
<li><a href="Garlic_routing" title="Garlic routing">Garlic routing</a></li>
<li><a href="Kademlia" title="Kademlia">Kademlia</a></li>
<li><a href="Mix_network" title="Mix network">Mix network</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Mathematics</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Cryptographic_hash_function" title="Cryptographic hash function">Cryptographic hash function</a></li>
<li><a href="Block_cipher" title="Block cipher">Block cipher</a></li>

<li><a href="Symmetric-key_algorithm" title="Symmetric-key algorithm">Symmetric-key algorithm</a></li>
<li><a href="Authenticated_encryption" title="Authenticated encryption">Authenticated encryption</a></li>
<li><a href="Public-key_cryptography" title="Public-key cryptography">Public-key cryptography</a></li>
<li><a href="Quantum_key_distribution" title="Quantum key distribution">Quantum key distribution</a></li>
<li><a href="Quantum_cryptography" title="Quantum cryptography">Quantum cryptography</a></li>
<li><a href="Post-quantum_cryptography" title="Post-quantum cryptography">Post-quantum cryptography</a></li>
<li><a href="Message_authentication_code" title="Message authentication code">Message authentication code</a></li>
<li><a href="Cryptographically_secure_pseudorandom_number_generator" title="Cryptographically secure pseudorandom number generator">Random numbers</a></li>
<li><a href="Steganography" title="Steganography">Steganography</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-01" href="https://en.wikipedia.org/wiki/?title=Stream_cipher&amp;oldid=1298335556">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>